package com.common.android.utils;

import android.content.Context;

/**
 * 屏幕大小单位转换工具类
 * <br>Created 2014-8-22 上午10:51:42
 * @version  
 * @author   wader		
 * @see 	 
 * Copyright(c) 2009-2014, TQ Digital Entertainment, All Rights Reserved
 *
 */
public class DisplayUtil {
       
    private static final float VALUE = 0.5f; 
    /**
     * 将px值转换为dip值
     * <br>Created 2014-8-22 上午10:57:55
     * @param context 上下文
     * @param pxValue px值
     * @return dip值
     * @author       huangyx
     */
    public static int px2dip(Context context, float pxValue) {  
        final float scale = context.getResources().getDisplayMetrics().density;  
        return px2dip(pxValue, scale) ;  
    } 
    
    /**
     * 将dip值转换为px值
     * <br>Created 2014-8-22 上午10:57:55
     * @param context 上下文
     * @param dipValue dip值
     * @return px值
     * @author       huangyx
     */
    public static int dip2px(Context context, float dipValue) {  
        final float scale = context.getResources().getDisplayMetrics().density;  
        return dip2px(dipValue, scale);
    }
    
    /**
     * 将px值转换为dip值
     * <br>Created 2014-8-22 上午10:53:12
     * @param pxValue px值
     * @param scale 比例系数
     * @return dip值
     * @author       huangyx
     */
	public static int px2dip(float pxValue, float scale) {
		return (int) (pxValue / scale + VALUE);
	}

	/**
	 * 将dip值转换为px值
	 * <br>Created 2014-8-22 上午10:54:27
	 * @param dipValue dip值
	 * @param scale 比例系数
	 * @return px值
	 * @author       huangyx
	 */
	public static int dip2px(float dipValue, float scale) {
		return (int) (dipValue * scale + VALUE);
	}
	
	/**
	 * 将px值转换为sp值
	 * <br>Created 2014-8-22 上午10:55:50
	 * @param pxValue px值
	 * @param fontScale 比例系数
	 * @return sp值
	 * @author       huangyx
	 */
	public static int px2sp(float pxValue, float fontScale) {
		return (int) (pxValue / fontScale + VALUE);
	}

	/**
	 * 将sp值转换为px值
	 * <br>Created 2014-8-22 上午10:56:37
	 * @param spValue sp值
	 * @param fontScale 比例系数
	 * @return px值
	 * @author       huangyx
	 */
	public static int sp2px(float spValue, float fontScale) {
		return (int) (spValue * fontScale + VALUE);
	}
}
